import { CardItem } from "./CardItem";
import { GlobelPrefab } from "./GlobelPrefab";

/** 游戏数据 */
export interface MiniGameData {
    /**
     * 当前片段在总的课程时间里起点
     */
    beginTime: number;
    /**
     * 当前片段在总的课程时间结束点，也就是进入小游戏的时间点
     */
    endTime: number;
    gameType: number;
    typeStep: number;
    step: number;
    specialViewInfo?: any;
    /**本环节的视频时长，单位毫秒，如果是交互，就是0 */
    videoDurationNum: number;
    /**配置的原始数据*/
    cfg?: {
        miniGameType: number;
        videoType: number;
        lessionVideo: string;
        /**
         * 为了支持旧的配置，有可能配置分段时长number，例如：60  。
         * 新版支持配置成时间点string：01:30.8  这样的时间点。
         */
        videoDuration: any;
    }
}

/**地图一个格子的宽,一个卡牌占据2x2格子 */
export const cellWidth:number = 35;

/**地图一个格子的高,一个卡牌占据2x2格子 */
export const cellHeight:number = 40;

/** 地图的总列,横坐标 */
export const allColumn:number = 18;

/** 地图的总行 纵坐标*/
export const allRow:number = 18;

/** 地图的长度，像素, cellWidth * allColumn*/
export const allWidth:number = cellWidth * allColumn;
/** 地图的高度 像素*, cellHeight * allRow*/
export const allHeight:number =  cellHeight * allRow;
/** 地图的左上角坐标, 以锚点(0.5,0.5)为前提, -allWidth/2*/
export const beginX:number = -allWidth/2;
/** 地图的左上角坐标, 以锚点(0.5,0.5)为前提, allHeight/2*/
export const beginY:number = allHeight/2;


/** 最大选中卡牌数*/
export const selectMaxNum:number = 7;


/** 连选操作间隔数 */
export const comboLimitMaxNum:number = 2;







export interface LayerInfo{
    layerId:number;
    allCards:Map<string, CardItem>;
}


export enum CardType {
    /**一万 */
    type1 = 21, 
    type2 = 22,
    type3 = 23,
    type4 = 24,
    type5 = 25,
    type6 = 26,
    type7 = 27,
    type8 = 28,
    type9 = 29,
    
    /**一同 */
    type10 = 31,
    type11 = 32,
    type12 = 33,
    type13 = 34,
    type14 = 35,
    type15 = 36,
    type16 = 37,
    type17 = 38,
    type18 = 39,

    /**一索 */
    type19 = 41,
    type20 = 42,
    type21 = 43,
    type22 = 44,
    type23 = 45,
    type24 = 46,
    type25 = 47,
    type26 = 48,
    type27 = 49,

    /**东 */
    type28 = 51,
    type29 = 52,
    type30 = 53,
    type31 = 54,
    type32 = 55,
    type33 = 56,
    type34 = 57,

    /**梅 */
    type35 = 61,
    type36 = 62,
    type37 = 63,
    type38 = 64,
    type39 = 65,
    type40 = 66,
    type41 = 67,
    type42 = 68,
}


export const typeArry1:number[] = [CardType.type1,CardType.type2,CardType.type3,CardType.type4,CardType.type5,CardType.type6,CardType.type7,CardType.type8,CardType.type9];
export const typeArry2:number[] = [CardType.type10,CardType.type11,CardType.type12,CardType.type13,CardType.type14,CardType.type15,CardType.type16,CardType.type17,CardType.type18];
export const typeArry3:number[] = [CardType.type19,CardType.type20,CardType.type21,CardType.type22,CardType.type23,CardType.type24,CardType.type25,CardType.type26,CardType.type27];
export const typeArry4:number[] = [CardType.type28,CardType.type29,CardType.type30,CardType.type31,CardType.type32,CardType.type33,CardType.type34];
export const typeArry5:number[] = [CardType.type35,CardType.type36,CardType.type37,CardType.type38,CardType.type39,CardType.type40,CardType.type41,CardType.type42];
export const typeArryAll:number[] = [CardType.type1,CardType.type2,CardType.type3,CardType.type4,CardType.type5,CardType.type6,CardType.type7,CardType.type8,CardType.type9
    ,CardType.type10,CardType.type11,CardType.type12,CardType.type13,CardType.type14,CardType.type15,CardType.type16,CardType.type17,CardType.type18
    ,CardType.type19,CardType.type20,CardType.type21,CardType.type22,CardType.type23,CardType.type24,CardType.type25,CardType.type26,CardType.type27
    ,CardType.type28,CardType.type29,CardType.type30,CardType.type31,CardType.type32,CardType.type33,CardType.type34
    ,CardType.type35,CardType.type36,CardType.type37,CardType.type38,CardType.type39,CardType.type40,CardType.type41,CardType.type42];


    export enum GameEvent {
        /**选择当前编辑的layer */
        selectLayer = "selectLayer",
        /**移除layer */
        delectLayer = "delectLayer",

        /**选中卡片*/
        SELECT_CARD = "SELECT_CARD",


        
    }
    
    class GameConst {
        public globelPrefab:GlobelPrefab = null;
    }
    export let gameConst:GameConst = new GameConst();
